package com.it.emall.mapper;

import com.it.emall.domain.AdminUser;
import com.it.emall.domain.Comments;
import org.apache.catalina.User;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
 * 用户信息mapper接口
 */
public interface UserMapper {



    /**
     * 通过用户名查询用户信息
     * @param username
     * @return
     */
    AdminUser selectUsername(String username);


    /**
     * 通过id查询用户信息
     * @param id
     * @return
     */
    AdminUser selectUserById(Integer id);


    int updateUserInfo(AdminUser adminUser);
    // 插入新用户
    @Insert("INSERT INTO users (username, password, email, age, gender, health_status,avatar) " +
            "VALUES (#{username}, #{password}, #{email}, #{age}, #{gender}, #{healthStatus}, #{avatar})")
    int registerUser(AdminUser adminUser);

    // 通过用户名查询用户（用于检测用户名是否已存在）
    @Select("SELECT * FROM users WHERE username = #{username}")
    AdminUser findByUsername(String username);


    /**
     * 后台管理系统
     */
    // 查询所有用户
    List<AdminUser> findManageAllUsers();

    // 根据用户ID删除用户
    int deleteManageUserById(Integer userId);

    // 更新用户
    int updateManageUser(AdminUser adminUser);

    // 模糊查询用户
    List<AdminUser> searchManageUsers(@Param("username") String username,
                           @Param("email") String email,
                           @Param("age") Integer age,
                           @Param("gender") String gender);


    AdminUser getManageUserById(Integer userId);

    //用户id查询用户评论
    List<Comments> selectCommentsById(Integer userId);
}